<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
<head th:replace="admin/_fragments :: head(~{::title})">
    <meta charset="UTF-8">
    <!--调整缩放，方便移动端-->
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>博客发布</title>

    <!--semantic ui 的 css-->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/semantic-ui@2.4.2/dist/semantic.min.css">

    <!--自己定义的 css-->
    <link rel="stylesheet" href="../../static/css/me.css">

    <!--editormd 的 css-->
    <link rel="stylesheet" href="../../static/lib/editormd/css/editormd.min.css">

</head>
<body>
    <!--导航-->
    <!--
        inverted : 颜色反转，加上就是黑色
        attached : 贴附，加上导航条就没有圆角
        m-padded-tb-mini : 自定义的 css ，表示导航栏菜单的上下内间距调整小一点
        segment : 一条类似导航栏的带子
    -->
    <nav th:replace="admin/_fragments :: menu(1)" class="ui inverted segment attached m-padded-tb-mini m-shadow-small">
        <!--放在 container 里可以让四周都留点空隙-->
        <div class="ui container">
            <!--
                secondary : 相当于一个背景色的样式
                stackable : 表示可堆叠的，在移动端时，里面的元素会有序堆在一起，一般与 menu ，grid 等连用
            -->
            <div class="ui inverted secondary stackable menu">
                <!--teal : 相当于一个字体颜色，绿色-->
                <h2 class="ui teal header item">管理后台</h2>
                <!--在 ws 中可以快速写标签，例如： i.home.icon + tab键 = <i class="home icon"></i>-->
                <!--
                    item : 与上面的 menu 相对应
                    m-mobile-hide : 自定义的 css ，在移动端时隐藏
                    m-item : 没有任何样式作用，仅用于 js 作为选择器
                -->
                <a href="#" class="active m-item item m-mobile-hide"><i class="home icon"></i>博客</a>
                <a href="#" class="m-item item m-mobile-hide"><i class="idea icon"></i>分类</a>
                <a href="#" class="m-item item m-mobile-hide"><i class="tags icon"></i>标签</a>

                <div class="right m-item item m-mobile-hide menu">
                    <!--拥有下拉菜单的头像框-->
                    <!--
                        dropdown item : 代表一个下拉菜单
                    -->
                    <div class="ui dropdown item">
                        <div class="text">
                            <img class="ui avatar image" src="https://picsum.photos/id/1/100/100">名字
                        </div>
                        <i class="dropdown icon"></i>
                        <!--menu 中包含下拉菜单项-->
                        <div class="menu">
                            <a href="#" class="item">注销</a>
                        </div>
                    </div>
                </div>

            </div>
        </div>

        <!--用于移动端折叠导航栏的按钮-->
        <!--
            m-right-top : 自定义的 css，将元素至于右上角
            m-mobile-show : 自定义的 css ，在移动端时显示，在通常情况下隐藏
            menu toggle : 没有任何样式作用，仅用于 js 作为选择器
        -->
        <a href="#" class="ui black menu toggle icon button m-right-top m-mobile-show">
            <i class="sidebar icon"></i>
        </a>

    </nav>
    <div class="ui attached pointing menu">
        <div class="ui container">
            <div class="right menu">
                <a href="#" th:href="@{/admin/blogs/input}" class="teal active item">发布</a>
                <a href="#" th:href="@{/admin/blogs}" class="item">列表</a>
            </div>
        </div>
    </div>

    <!--中间内容-->
    <!--
        m-container : 自定义css，使其比原定的 container 窄
    -->
    <div class="m-container m-padded-tb-big">
        <div class="ui container">
            <form id="blog-form" action="#" th:object="${blog}" th:action="@{/admin/blogs}" method="post" class="ui form">
                <!--当为新增操作时，id会为空，当为修改操作时，id会为要修改的id-->
                <input type="hidden" name="id" th:value="*{id}">

                <!--用于提交博客发布状态的隐藏域-->
                <input type="hidden" name="published">

                <!--标题-->
                <div class="required field">
                    <div class="ui left labeled input">
                        <!--
                            compact : 将下拉菜单的长度缩短，与后面的文本框同一行
                        -->
                        <div class="ui selection compact teal basic dropdown label">
                            <!--如果在页面上没有点选的话，是没有值的，所以应该在后端设定一个默认值，默认为原创-->
                            <input type="hidden" value="原创" name="flag" th:value="*{flag}">
                            <i class="dropdown icon"></i>
                            <!--
                                default : 这里没有写 default ，为了让文字也带上颜色
                            -->
                            <div class="text">原创</div>
                            <div class="menu">
                                <div class="item" data-value="原创">原创</div>
                                <div class="item" data-value="转载">转载</div>
                                <div class="item" data-value="翻译">翻译</div>
                            </div>
                        </div>
                        <input type="text" name="title" placeholder="标题" th:value="*{title}">
                    </div>
                </div>

                <!--博客内容-->
                <div class="required field">
                    <!--editormd 的容器-->
                    <!--
                        z-index : 叠放层次，将 editormd 放在最上层
                    -->
                    <div id="md-content" style="z-index: 1 !important">
                        <textarea placeholder="博客内容" name="content" style="display: none" th:text="*{content}"></textarea>
                    </div>
                </div>

                <!--分类 和 标签-->
                <!--
                    two fields : 一行有两个 field
                -->
                <div class="two fields">
                    <!--分类-->
                    <div class="required field">
                        <!--
                            action : 使标签和下拉菜单连接紧密
                        -->
                        <div class="ui left labeled action input">
                            <label class="ui compact teal basic label">分类</label>
                            <div class="ui fluid selection dropdown">
                                <!--
                                    name="type.id" : 这样写传到后端时，可以用 blog.getType().getId() 获取到
                                    *{type} != null ? *{type.id} : 当 type 不为空，即修改操作时才显示，这里是为了防止空指针异常
                                -->
                                <input type="hidden" name="type.id" th:value="*{type} != null ? *{type.id}">
                                <i class="dropdown icon"></i>
                                <div class="default text">分类</div>
                                <div class="menu">
                                    <div th:each="type : ${types}" class="item" data-value="1" th:data-value="${type.id}" th:text="${type.name}">错误日志</div>
                                </div>
                            </div>
                        </div>
                    </div>
                    <!--标签-->
                    <div class="field">
                        <div class="ui left labeled action input">
                            <label class="ui compact teal basic label">标签</label>
                            <!--
                                multiple : 可以多选，选上也可删除
                                search : 可以搜索，关键字根据的是下面的 data-value
                                tag : 无样式，仅作为 js 的选择器
                            -->
                            <div class="ui tag fluid selection multiple search dropdown">
                                <!--
                                    这里传到后端的 value 是以 , 隔开的字符串，例如： 1,2,3 ，所以在后端要将其处理为列表
                                    th:value="*{tagIds}" : 需要在后端处理为以 , 隔开的字符串，例如： 1,2,3，才能正常显示
                                -->
                                <input type="hidden" name="tagIds" th:value="*{tagIds}">
                                <i class="dropdown icon"></i>
                                <div class="default text">标签</div>
                                <div class="menu">
                                    <div th:each="tag : ${tags}" class="item" data-value="1" th:data-value="${tag.id}" th:text="${tag.name}">Java</div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>

                <!--首图引用-->
                <div class="required field">
                    <div class="ui left labeled input">
                        <label class="ui teal basic label">首图</label>
                        <input type="text" name="firstPicture" placeholder="首图引用地址" th:value="*{firstPicture}">
                    </div>

                </div>

                <!--博客描述-->
                <div class="required field">
                    <textarea name="description" th:text="*{description}" placeholder="博客描述..." maxlength="200"></textarea>
                </div>

                <!--推荐 -->
                <!--
                    inline fields : 里面的 field 都放在同一行
                -->
                <div class="inline fields">
                    <div class="field">
                        <div class="ui checkbox">
                            <!--
                                hidden : 文本不能被选中
                            -->
                            <input type="checkbox" id="recommend" name="recommend" checked class="hidden" th:checked="*{recommend}">
                            <label for="recommend">推荐</label>
                        </div>
                    </div>
                    <div class="field">
                        <div class="ui checkbox">
                            <!--
                                hidden : 文本不能被选中
                            -->
                            <input type="checkbox" id="shareStatement" name="shareStatement" class="hidden" th:checked="*{shareStatement}">
                            <label for="shareStatement">转载声明</label>
                        </div>
                    </div>
                    <div class="field">
                        <div class="ui checkbox">
                            <!--
                                hidden : 文本不能被选中
                            -->
                            <input type="checkbox" id="appreciation" name="appreciation" class="hidden" th:checked="*{appreciation}">
                            <label for="appreciation">赞赏</label>
                        </div>
                    </div>
                    <div class="field">
                        <div class="ui checkbox">
                            <!--
                                hidden : 文本不能被选中
                            -->
                            <input type="checkbox" id="commentabled" name="commentabled" class="hidden" th:checked="*{commentabled}">
                            <label for="commentabled">评论</label>
                        </div>
                    </div>
                </div>

                <!--错误信息显示容器-->
                <!--
                    error message : 代表一个错误信息显示容器
                -->
                <div class="ui error message"></div>

                <!--确认按钮栏-->
                <div class="ui right aligned container">
                    <!--
                        window.history.go(-1) : 返回上一页，从哪个页面来，回那个页面去
                    -->
                    <button type="button" class="ui button" onclick="window.history.go(-1)">返回</button>
                    <button type="button" id="save-btn" class="ui secondary button">保存</button>
                    <button type="button" id="publish-btn" class="ui teal button">发布</button>
                </div>
            </form>
        </div>


    </div>

    <br>
    <br>

    <!--底部 footer-->
    <!--
        vertical : 垂直，加上没有圆角
        m-padded-tb-massive : 自定义 css，使整个 footer 的内间距变大
    -->
    <footer th:replace="admin/_fragments :: footer" class="ui inverted vertical segment m-padded-tb-massive">
        <!--
            center aligned : 里面所有元素居中
        -->
        <div class="ui center aligned container">
            <!--
                grid : 类似于 bootstrap 中的 row，bootstrap 中 把一行分成 12 列，这里分成 16 列
                divided : 每列之间加上分割线
                inverted : 因为背景是反转色，所以这里也反转
            -->
            <div class="ui inverted divided stackable grid">
                <!--二维码图片-->
                <!--
                    wide : 宽度填满
                -->
                <div class="three wide column">
                    <!--把图片放在 list 里，使图片能居中-->
                    <div class="ui inverted link list">
                        <div class="item">
                            <!--
                                rounded : 圆角的
                            -->
                            <img src="../../static/images/QRcode.png" class="ui rounded image" style="width: 110px">
                        </div>
                    </div>
                </div>
                <!---->
                <div class="three wide column">
                    <h4 class="ui inverted header m-text-thin m-text-spaced">最新博客</h4>
                    <!--
                        list : 里面的元素呈列表样式
                    -->
                    <div class="ui inverted link list">
                        <!--
                            item : 与上面的 list 相对应
                        -->
                        <a href="#" class="item">用户故事</a>
                        <a href="#" class="item">用户故事</a>
                        <a href="#" class="item">用户故事</a>
                    </div>
                </div>
                <div class="three wide column">
                    <h4 class="ui inverted header m-text-thin m-text-spaced">联系我</h4>
                    <!--
                        list : 里面的元素呈列表样式
                    -->
                    <div class="ui inverted link list">
                        <!--
                            item : 与上面的 list 相对应
                        -->
                        <a href="#" class="item">Email: dfasdog@qq.com</a>
                        <a href="#" class="item">QQ: 13355767653</a>
                    </div>
                </div>
                <div class="seven wide column">
                    <!--加上自定义样式-->
                    <h4 class="ui inverted header m-text-thin m-text-spaced">Blog</h4>
                    <!--加上自定义样式-->
                    <p class="m-text-thin m-text-spaced m-opacity-mini">一段话一段话一段话一段话一段话一段话一段话一段话一段话一段话一段话一段话一段话一段话一段话一段话一段话一段话一段话一段话一段话一段话一段话一段话一段话一段话</p>
                </div>
            </div>
            <!--分割线-->
            <!--
                divider : 与上面的 divided 区别开
            -->
            <div class="ui inverted section divider"></div>
            <!--加上自定义样式-->
            <p class="m-text-thin m-text-spaced m-opacity-tiny">版权内容版权内容版权内容版权内容版权内容</p>
        </div>
    </footer>

<!--/*/<th:block th:replace="admin/_fragments :: script">/*/-->
<!--jquery 的 js-->
<script src="https://cdn.jsdelivr.net/npm/jquery@3.2/dist/jquery.min.js"></script>

<!--semantic ui 的 js-->
<script src="https://cdn.jsdelivr.net/npm/semantic-ui@2.4.2/dist/semantic.min.js"></script>
<!--/*/</th:block>/*/-->


<!--自定义的 js-->
<script>

    // editormd 初始化
    var contentEditor;
    $(function () {
        contentEditor = editormd("md-content",  // 对应容器的 div 的 id
            {
                width: "100%",
                height: 640,
                syncScrolling: "single",
                path: "/lib/editormd/lib/"     // editormd 的 lib 所在路径
            }
        );
    });

    // 顶部导航栏折叠
    $('.menu.toggle').click(function () {
        // 如果类中有 m-mobile-hide ，则去掉，否则加上
        $('.m-item').toggleClass('m-mobile-hide');
    });

    $('.ui.dropdown').dropdown({
        // on: 'hover'     // 鼠标悬浮就弹出菜单
    });

    // 保存按钮的点击事件
    $('#save-btn').click(function () {
        $('[name="published"]').val(false);     // 将发布状态设置为 false
        $('#blog-form').submit();               // 提交
    });

    // 发布按钮的点击事件
    $('#publish-btn').click(function () {
        $('[name="published"]').val(true);      // 将发布状态设置为 true
        $('#blog-form').submit();               // 提交
    });

    // // 标签的下拉菜单实现在框中输入并添加标签，在后端也要进行相应的操作，先判断有哪些标签是新增，将其新增后在和 blog 建立关系
    // $('.ui.tag.dropdown').dropdown({
    //     allowAdditions: true         // 将允许添加打开
    // });

    // 表单验证，详看官方手册
    $('.ui.form').form({
        fields: {
            title: {
                identifier: 'title',
                rules: [{
                    type: 'empty',
                    prompt: '标题：请输入博客标题'
                }]
            },
            content: {
                identifier: 'content',
                rules: [{
                    type: 'empty',
                    prompt: '请输入博客内容'
                }]
            },
            typeId: {
                identifier: 'typeId',
                rules: [{
                    type: 'empty',
                    prompt: '请选择博客分类'
                }]
            },
            firstPicture: {
                identifier: 'firstPicture',
                rules: [{
                    type: 'empty',
                    prompt: '请选择博客首图'
                }]
            },
            description: {
                identifier: 'description',
                rules: [{
                    type: 'empty',
                    prompt: '请输入博客描述'
                }]
            }
        }
    });

</script>
</body>
</html>